/*                          UX-Framework                               
 *                                                                 
 *  iZE Co.,Ltd. Copyright 2009 All rights reserved.          
 *  This file is distributed under the terms of the GNU Lesser 
 *  General Public License, described in file LICENSE.                                     
 */
package jp.ize.ux.events;

import jp.ize.ux.events.UXKeyboardEvent;
import jp.ize.ux.geom.UXPoint;

// {{{ class UXMouseEvent extends UXEvent
/**
 * UXMouseEventクラス<br>
 * 低レベルなマウスイベントを表現するクラスです。<br>
 *
 * @author		iZE Co., Ltd.<br>
 * @version		$Id$<br>
 */
class UXMouseEvent extends UXEvent
{
	// {{{ properties

	public static var CLICK : String        = flash.events.MouseEvent.CLICK;
	public static var DOUBLE_CLICK : String = flash.events.MouseEvent.DOUBLE_CLICK;
	public static var DOWN : String         = flash.events.MouseEvent.MOUSE_DOWN;
	public static var UP : String           = flash.events.MouseEvent.MOUSE_UP;
	public static var MOVE : String         = flash.events.MouseEvent.MOUSE_MOVE;
	public static var OUT : String          = flash.events.MouseEvent.MOUSE_OUT;
	public static var OVER : String         = flash.events.MouseEvent.MOUSE_OVER;
	public static var WHEEL : String        = flash.events.MouseEvent.MOUSE_WHEEL;
	public static var ROLL_OUT : String     = flash.events.MouseEvent.ROLL_OUT;
	public static var ROLL_OVER : String    = flash.events.MouseEvent.ROLL_OVER;
	/*
	// {{{ original mouse event types
	public static var CLICK : String = "__UX_MOUSE_CLICK";
	public static var DOUBLE_CLICK : String = "__UX_MOUSE_DOUBLE_CLICK";
	public static var DOWN : String = "__UX_MOUSE_DOWN";
	public static var UP : String = "__UX_MOUSE_UP";
	public static var MOVE : String = "__UX_MOUSE_MOVE";
	public static var OUT : String = "__UX_MOUSE_OUT";
	public static var OVER : String = "__UX_MOUSE_OVER";
	public static var WHEEL : String = "__UX_MOUSE_WHEEL";
	public static var ROLL_OUT : String = "__UX_MOUSE_ROLL_OUT";
	public static var ROLL_OVER : String = "__UX_MOUSE_ROLL_OVER";
	// }}}
	*/

	// }}}
	// {{{ public var local(default, null) : UXPoint
	/**
	 * ローカル座標系におけるマウスイベントの位置を示します。
	 */
	public var local(default, null) : UXPoint;
	// }}}
	// {{{ public var global(default, null) : UXPoint
	/**
	 * グローバル座標系におけるマウスイベントの位置を示します。
	 */
	public var global(default, null) : UXPoint;
	// }}}
	// {{{ public var mods(default, null) : Array<KeyMods>
	/**
	 * このマウスイベントが発生した時に押されていた修飾キーの配列を示します。
	 */
	public var mods(default, null) : Array<KeyMods>;
	// }}}
	// {{{ public var delta(default, null) : Int
	/**
	 * マウスホイールの移動量を示します。
	 */
	public var delta(default, null) : Int;
	// }}}
	// {{{ public var isDown(default, null) : Bool
	/**
	 * このマウスイベントが発生した時にマウスボタンが押されているかどうかを示します。
	 */
	public var isDown(default, null) : Bool;
	// }}}
	// {{{ public function new( type : String, local : UXPoint, global : UXPoint, mods : Array<KeyMods>, ?delta : Int )
	/**
	 * コンストラクタです。
	 */
	public function new( type : String, local : UXPoint, global : UXPoint, mods : Array<KeyMods>, ?delta : Int )
	{
		super(type);
		name = type;
		//TODO initialize
	}
	// }}}
}
// }}}
